<?php
defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * “我的”小动作控制器
 * 
 * @desc    “我的”小动作
 * @version 1.0.0 直接完善文档注释
 * @date	2017年7月11日 下午2:52:46
 * 
 * @title “我的”小动作
 * @entry http://discovery.segway.com
 * 
 * @desc	
	// MARK 小动作C端业务处理
	// 	我的、我的、我的：
	// 	收藏/取消路线，传ID - from 小动作添加和删除切换
	// 	收藏/取消商户，传ID - from 小动作添加和删除切换
	// 	获取收藏路线列表
	// 	获取收藏商户列表
	// 	移除收藏，按ID
	
 */
class Trick extends MY_Consumer_Controller
{
	/** @var Lib_trick */
	public $lib_trick = null;
	
	/** @var Lib_merchant */
	public $lib_merchant = null;
	
	/** @var Lib_touroute */
	public $lib_touroute = null;
	
	public function __construct()
	{
		parent::__construct();
		
		$this->load->library('lib_trick');
		$this->load->library('lib_merchant');
		$this->load->library('lib_touroute');
		
		$this->lang->load('trick');
		
		$this->load->helper('array');
	}
	
	/**
	 * 删除“我的”收藏
	 * 
	 * @desc	包括删除收藏的路线和收藏的商户
	 * @desc	取消小动作，可以是取消收藏，取消关注，取消赞顶踩，取消有意，取消拉黑，取消内推等！
	 * @method	POST
	 * @author	Jason
	 * @date	2017年7月11日 下午3:15:48
	 * 
	 * @param	number $id	小动作ID
	 * 
	 * @return	JSON	标准JSON格式响应
	 * 
	 * @link	/trick/ajax_delete
	 * 
	 * @command noneurl
	 */
	public function ajax_delete()
	{
		$id = $this->input->post('id');
		$member_id = $this->get_logined_member()['id'];
		list($status, $content) = $this->lib_trick->before_manage_validation($id, $member_id);
		if ($status) {
			list($status, $content) = $this->lib_trick->delete();
		}
		
		if(!$status) {
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content));
		} else {
			Lib_json::renderSuccess([]);
		}
	}
	
	/**
	 * 收藏路线的添加和删除交替切换
	 * 
	 * @desc	增加一个小动作，顾客（客户、消费者） + 收藏 + 路线
	 * @desc	小动作添加和删除切换 - 编辑完后的信息提交 - 增加 & 删除
	 * @method	POST
	 * @author	Jason
	 * @date	2017年7月11日 下午4:21:27
	 * @date	2017年7月13日 下午4:56:10
	 * 
	 * @param	number $target_id 目标资源ID，意见针对方资源ID，路线ID
	 * @param	string $content   附加内容，默认为空
	 * 
	 * @return	JSON	标准JSON格式响应
	 * 					结构：无
	 * 
	 * @link	/trick/ajax_toggle_touroute
	 * 
	 * @command noneurl
	 */
	public function ajax_toggle_touroute()
	{
		$member_id = $this->get_logined_member()['id'];
		$_POST['type'] = 'favourite';
		$_POST['source_type'] = 'consumer';
		$_POST['target_type'] = 'touroute';
		$_POST['source_id'] = $member_id;
		#_POST['target_id'] = $_POST['target_id'];
		#_POST['content'] = $_POST['content'];
		list($status, $content) = $this->lib_trick->toggle_create_delete();
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			Lib_json::renderSuccess(['data' => $content], 'success');
		}
	}
	
	/**
	 * 收藏商户的添加和删除交替切换
	 *
	 * @desc	增加一个小动作，顾客（客户、消费者） + 收藏 + 商户
	 * @desc	收藏商户的添加和删除切换 - 编辑完后的信息提交 - 增加 & 删除
	 * @method	POST
	 * @author	Jason
	 * @date	2017年7月11日 下午4:21:27
	 * @date	2017年7月13日 下午4:33:12
	 *
	 * @param	number $target_id 目标资源ID，意见针对方资源ID，商户ID
	 * @param	string $content   附加内容，默认为空
	 *
	 * @return	JSON	标准JSON格式响应
	 * 					结构：无
	 *
	 * @link	/trick/ajax_toggle_merchant
	 *
	 * @command noneurl
	 */
	public function ajax_toggle_merchant()
	{
		$member_id = $this->get_logined_member()['id'];
		$_POST['type'] = 'favourite';
		$_POST['source_type'] = 'consumer';
		$_POST['target_type'] = 'merchant';
		$_POST['source_id'] = $member_id;
		#_POST['target_id'] = $_POST['target_id'];
		#_POST['content'] = $_POST['content'];
		list($status, $content) = $this->lib_trick->toggle_create_delete();
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			Lib_json::renderSuccess(['data' => $content], 'success');
		}
	}
	
	/**
	 * “我的”路线收藏列表
	 * 
	 * @desc	我收藏的路线
	 * @author	Jason
	 * @date	2017年7月12日 下午3:00:37
	 * @link	/trick/ajax_favourite_touroute_listing
	 */
	public function ajax_favourite_touroute_listing($page = 1, $number = 20)
	{
		$member_id = $this->get_logined_member()['id'];
		$conditions = $this->lib_trick->get_conditions();
		$list = $this->lib_trick->get_tricks_list_by_somekey($conditions, $page, $number, 'favourite', 'consumer', $member_id, 'touroute');
		
		$list['data'] = $this->lib_trick->render_trick_touroute_list($list['data']);
		$list['data'] = arraysFieldAss($list['data'], [
				'touroute_id'=>'target_id',
				'touroute_name'=>'target_id_name',
				'touroute_cover'=>'target_id_cover',
				'touroute_latitude'=>'target_id_latitude',
				'touroute_longitude'=>'target_id_longitude',
				'touroute_duration'=>'target_id_duration',
				'touroute_settle_currency'=>'target_id_settle_currency',
				'touroute_settle_amount'=>'target_id_settle_amount',
				'touroute_channel_currency'=>'target_id_channel_currency',
				'touroute_channel_amount'=>'target_id_channel_amount',
				'touroute_current_currency'=>'target_id_current_currency',
				'touroute_retail_current'=>'target_id_retail_current',
				'touroute_retail_cny'=>'target_id_retail_cny',
				'touroute_retail_usd'=>'target_id_retail_usd',
				'touroute_retail_eur'=>'target_id_retail_cny',
				'touroute_address_string'=>'target_id_address_string',
				'touroute_direction_url'=>'target_id_direction_url',
		]);
		$list['data'] = arraysColumn($list['data'], [
				'touroute_id',
				'touroute_name',
				'touroute_cover',
				'touroute_latitude',
				'touroute_longitude',
				'touroute_duration',
				'touroute_settle_currency',
				'touroute_settle_amount',
				'touroute_channel_currency',
				'touroute_channel_amount',
				'touroute_current_currency',
				'touroute_retail_current',
				'touroute_retail_cny',
				'touroute_retail_usd',
				'touroute_retail_eur',
				'touroute_address_string',
				'touroute_direction_url',
				'touroute_status_tags',
				'create_time',
				'create_time_string',
				'id', 'type', 'source_type', 'target_type', 'source_id', 'target_id',
		]);
		$data['list'] = $list;
		
		Lib_json::renderSuccess($list, 'success');
	}
	
	/**
	 * “我的”路线商户列表
	 *
	 * @desc	我收藏的商户
	 * @author	Jason
	 * @date	2017年7月13日 下午2:25:07
	 * @link	/trick/ajax_favourite_merchant_listing
	 */
	public function ajax_favourite_merchant_listing($page = 1, $number = 20)
	{
		$member_id = $this->get_logined_member()['id'];
		$conditions = $this->lib_trick->get_conditions();
		$list = $this->lib_trick->get_tricks_list_by_somekey($conditions, $page, $number, 'favourite', 'consumer', $member_id, 'merchant');
		
		$list['data'] = $this->lib_trick->render_trick_merchant_list($list['data']);
		$list['data'] = arraysFieldAss($list['data'], [
				'merchant_id'=>'target_id',
				'merchant_name'=>'target_id_name',
				'merchant_cover'=>'target_id_cover',
				'merchant_mobile'=>'target_id_mobile',
				'merchant_email'=>'target_id_email',
				'merchant_website'=>'target_id_website',
				'merchant_zipcode'=>'target_id_zipcode',
				'merchant_latitude'=>'target_id_latitude',
				'merchant_longitude'=>'target_id_longitude',
				'merchant_address_string'=>'target_id_address_string',
				'merchant_direction_url'=>'target_id_direction_url',
				'merchant_touroutes'=>'target_id_touroutes',
		]);
		$list['data'] = arraysColumn($list['data'], [
				'merchant_id',
				'merchant_name',
				'merchant_cover',
				'merchant_latitude',
				'merchant_longitude',
				'merchant_address_string',
				'merchant_direction_url',
				'merchant_touroutes',
				'create_time',
				'create_time_string',
				'id', 'type', 'source_type', 'target_type', 'source_id', 'target_id',
		]);
		$data['list'] = $list;
		
		Lib_json::renderSuccess($list, 'success');
	}
	
	
	
}
